//二次封装axios
import axios from 'axios'
import { ElMessage } from 'element-plus'

axios.default.baseURL = 'http://localhost:3000'
axios.default.timeout = 5000

axios.interceptors.request.use((config) => {
    const token = localStorage.getItem('token')
    if (token) {
        config.headers.Authorization = token
    }
    return config

})

axios.interceptors.response.use((response) => {
   if(response.stutes !== 200) { //如果响应码不是200，说明出错了,程序性错误
    ElMessage.error({
        type: 'error',
        message: response.data.message || '服务器'
    })  
   } else{
    if(response.data.code !== '200') { //如果响应码是200，但是code不是200，说明是业务错误
        if(response.data.code === '401') { //如果code是401，说明token过期了，需要重新登录
           ElMessage.error({
            type: 'error',
            message: response.data.message || '登录过期，请重新登录'
           })
           router.push('/login') //跳转到登录页面
        }else if(response.data.code === '404') { 
            ElMessage.error({
                type: 'error',
                message: response.data.message || '请求资源不存在'
            })
            router.push('/404') //跳转到404页面
        }
    } 
    return response.data //如果响应码是200，code是200，说明是正常的响应
   }
})
